February 18, 2022
n 개의 음이 아닌 정수들이 있습니다. 이 정수들을 바꾸지 않고 적절히 더하거나 빼서 타깃 넘버를 만들려고 합니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타깃 넘버 target이 매개변수로 주어진다.
const targetNumber = (numbers, target) => {
let count = 0
let sum = 0
const dfs = (numbers, depth, sum) => {
if (numbers.length === depth) {
if (sum === target) {
count++
}
return
}
dfs(numbers, depth + 1, sum - numbers[depth])
dfs(numbers, depth + 1, sum + numbers[depth])
}
dfs(numbers, 0, sum)
return count
}
test('targetNumber', () => {
expect(targetNumber([1, 1, 1, 1, 1], 3)).toBe(5)
expect(targetNumber([4, 1, 2, 1], 2)).toBe(2)
})
내가 dfs 문제를 잘 못 풀기도 하고, 간단한 dfs 문제라 테스트 하나로 끝난 것 같다.